package com.mlh.myspring.annotation;

import java.io.File;
import java.io.IOException;

//xxx.class.getResource()方法
// 无/：target/classes/package（这里package值得是xxx类所在包的包名）
// 有/：target/classes/  （即项目编译后的class文件、xml、properties等配置文件所在的目录）
// 因此，"" 为相对地址，"/" 为绝对地址

//xxx.class.getResource()方法 最终该方法会去调用的是ClassLoader的getSystemResource方法或者getResource方法
//ClassLoader.getResource方法，只能处理无 / 的路径，如果一开始加了 /，返回结果为 null
//所以在xxx.class.getResource()方法中 会对 / 进行解析处理
public class FileTest {
    public static void main(String[] args) throws IOException {
        FileTest ft=new FileTest();
        ft.test1();
    }
    public void test1(){
        File f = new File(this.getClass().getResource("/").getPath());
        System.out.println(f);//D:\javaProject\spring\target\classes

        File f1 = new File(this.getClass().getResource("").getPath());
        System.out.println(f1);//D:\javaProject\spring\target\classes\com\mlh\myspring\annotation

        File f2 = new File(this.getClass().getClassLoader().getResource("").getPath());
        System.out.println(f2);//D:\javaProject\spring\target\classes

        //File f3 = new File(this.getClass().getClassLoader().getResource("/").getPath());
        //System.out.println(f3);//null
    }
}
